package com.example.algorithm.no0014.solution;

import com.example.algorithm.no0014.Solution;

/**
 * @Description 解答实现-最长公共前缀
 *
 * 从前往后水平扫描
 * (1) 取数组中一个字符串从前往后遍历字符去匹配其它字符串的相同位置字符。
 * (2) 直到遍历超出数组中最短字符串长度或者遍历到的字符匹配不上，则返回当前匹配串。
 *
 * @ClassName SumTwoNum
 * @Author Administrator
 * @Date 2020/5/16 12:48
 * @Version 1.0.0
 */
public class SolutionImpl2 implements Solution {
    @Override
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
            return "";
        }
        for (int i = 0; i < strs[0].length() ; i++) {
            // 取出当前位置要匹配的字符。
            char c = strs[0].charAt(i);
            for (int j = 1; j < strs.length; j ++) {
                if (i == strs[j].length() || strs[j].charAt(i) != c) {
                    return strs[0].substring(0, i);
                }
            }
        }
        // 数组中其它字符串都能被 strs[0] 匹配。
        return strs[0];
    }
}
